package com.doordu.soa.service.web.annotation;

import com.doordu.soa.service.web.em.RegexType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Created by marvin on 2017/2/15.
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD,ElementType.PARAMETER,ElementType.METHOD})
public @interface DataValid {
    //是否可以为空
    boolean nullable() default false;

    //最大长度
    int maxLength() default 0;

    //最小长度
    int minLength() default 0;

    //提供几种常用的正则验证
    RegexType regexType() default RegexType.NONE;

    //自定义正则验证
    String regexExpression() default "";

    //参数或者字段描述,这样能够显示友好的异常信息
    String description() default "";

    //自定义验证处理器
    Class<? extends Object> checkHandler() default Void.class;

    //自定义验证处理器使用 Integer
    int min() default 1;

    int max() default Integer.MAX_VALUE;

    int[] choice() default {};

    //等于当前对象的某字段
    String eq() default "";

    String gt() default "";

    String gte() default ""; //没实现

    String lt() default "";

    String lte() default ""; //没实现

    String noteq() default "";

}
